import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;


public class Thread45 {
    public static void main(String[] args) {
        ExecutorService pool= Executors.newFixedThreadPool(10);


        //构造出一个含有10个线程的线程池干活
        for(int i=0;i<1000;i++)
        {
            int ret=i;//为啥这里要用一个ret变量来记录i呢， i是主线程里面的局部变量（在主线程的栈上）
            //随着主线程这里的代码块执行结束就销毁了，很可能主线程这里for执行完了
            //当前run的任务在线程池里还没排到，i就要销毁了，于是就有了变量捕获，让run方法把刚才主线程
            //里的i给当前的run的栈上拷贝一份。
            //submit方法，给线程池提供若干个方法
           pool.submit(new Runnable() {
               @Override
               public void run() {
                   System.out.println(ret);

               }
           });
        }

    }
}
